# -.- coding: utf-8 -.-

"""
    This file is part of django-perfiles.

    django-perfiles is free software: you can redistribute it and/or modify
    it under the terms of the GNU Affero General Public License as published by
    the Free Software Foundation, either version 3 of the License, or
    (at your option) any later version.

    django-perfiles is distributed in the hope that it will be useful,
    but WITHOUT ANY WARRANTY; without even the implied warranty of
    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
    GNU Affero General Public License for more details.

    You should have received a copy of the GNU Affero General Public License
    along with django-registro.  If not, see <http://www.gnu.org/licenses/>.

"""

from django.db import models
from django.contrib.auth.models import User
from django.utils.translation import ugettext_lazy as _

# De forma temporal, se incluye aquí un listado de las provincias españolas
# aunque esto se deberá transladar a una aplicación independiente
PROVINCIAS_CHOICES = (
    ('01', _(u'Álava')),
    ('02', _(u'Albacete')),
    ('03', _(u'Alicante')),
    ('04', _(u'Almería')),
    ('33', _(u'Asturias')),
    ('05', _(u'Ávila')),
    ('06', _(u'Badajoz')),
    ('08', _(u'Barcelona')),
    ('09', _(u'Burgos')),
    ('10', _(u'Cáceres')),
    ('11', _(u'Cádiz')),
    ('39', _(u'Cantabria')),
    ('12', _(u'Castellón')),
    ('51', _(u'Ceuta')),
    ('13', _(u'Ciudad Real')),
    ('16', _(u'Cuenca')),
    ('14', _(u'Córdoba')),
    ('17', _(u'Gerona')),
    ('18', _(u'Granada')),
    ('19', _(u'Guadalajara')),
    ('20', _(u'Guipúzcua')),
    ('21', _(u'Huelva')),
    ('22', _(u'Huesca')),
    ('07', _(u'Islas Baleares')),
    ('23', _(u'Jaén')),
    ('15', _(u'La Coruña')),
    ('26', _(u'La Rioja')),
    ('35', _(u'Las Palmas')),
    ('24', _(u'León')),
    ('25', _(u'Lérida')),
    ('27', _(u'Lugo')),
    ('29', _(u'Málaga')),
    ('28', _(u'Madrid')),
    ('52', _(u'Melilla')),
    ('30', _(u'Murcia')),
    ('31', _(u'Navarra')),
    ('32', _(u'Orense')),
    ('34', _(u'Palencia')),
    ('36', _(u'Pontevedra')),
    ('37', _(u'Salamanca')),
    ('40', _(u'Segovia')),
    ('41', _(u'Sevilla')),
    ('42', _(u'Soria')),
    ('38', _(u'Sta. Cruz de Tenerife')),
    ('43', _(u'Tarragona')),
    ('44', _(u'Teruel')),
    ('45', _(u'Todelo')),
    ('46', _(u'Valencia')),
    ('47', _(u'Valladolid')),
    ('48', _(u'Vizcaya')),
    ('49', _(u'Zamora')),
    ('50', _(u'Zaragoza')),
)


#def get_provicia(key):
#   for k,v in PROVINCIAS_CHOICES:
#        if k == key:
#  

class ProfileBase(models.Model):
    """
        Todos los perfiles debería heredar de esta clase. Contiene una clave
        externa a User y es necesario para extender la información que usa
        Django por defecto. De esta forma, la aplicación se integra con el
        sistema de perfiles de Django (>= 1.0)
    """
    class Meta:
        abstract = True
    
    user = models.ForeignKey(User, unique=True, related_name="%(class)s_related")


class PersonalBase(models.Model):
    """
        Contiene la información necesaria para un perfil personal
    """
    class Meta:
        abstract = True

    direccion = models.CharField(_(u'Dirección'), max_length=50)
    localidad = models.CharField(_(u'Localidad'), max_length=30)
    provincia = models.CharField(_(u'Provincia'), max_length=2, choices=PROVINCIAS_CHOICES)
    fecha_nacimiento = models.DateField(_(u'Fecha de Nacimiento'))
    nif = models.CharField(_(u'NIF'), max_length=9, unique=True)
    telefono = models.IntegerField(_(u'Teléfono'), )
    
    def get_provincia(self):
        for k,v in PROVINCIAS_CHOICES:
            if k == self.provincia:
                return v
